#ifndef _CkCrypt2_H
#define _CkCrypt2_H
#include "Chilkat_C.h"

HCkCrypt2 CkCrypt2_Create(void);
void CkCrypt2_Dispose(HCkCrypt2 handle);
int CkCrypt2_getBlockSize(HCkCrypt2 handle);
void CkCrypt2_getCharset(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_putCharset(HCkCrypt2 handle, const char *newVal);
void CkCrypt2_getCipherMode(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_putCipherMode(HCkCrypt2 handle, const char *newVal);
void CkCrypt2_getCompressionAlgorithm(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_putCompressionAlgorithm(HCkCrypt2 handle, const char *newVal);
void CkCrypt2_getCryptAlgorithm(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_putCryptAlgorithm(HCkCrypt2 handle, const char *newVal);
void CkCrypt2_getEncodingMode(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_putEncodingMode(HCkCrypt2 handle, const char *newVal);
BOOL CkCrypt2_getFirstChunk(HCkCrypt2 handle);
void CkCrypt2_putFirstChunk(HCkCrypt2 handle, BOOL newVal);
void CkCrypt2_getHashAlgorithm(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_putHashAlgorithm(HCkCrypt2 handle, const char *newVal);
long CkCrypt2_getHavalRounds(HCkCrypt2 handle);
void CkCrypt2_putHavalRounds(HCkCrypt2 handle, long newVal);
void CkCrypt2_getIV(HCkCrypt2 handle, HCkByteData retval);
void CkCrypt2_putIV(HCkCrypt2 handle, HCkByteData  newVal);
BOOL CkCrypt2_getIncludeCertChain(HCkCrypt2 handle);
void CkCrypt2_putIncludeCertChain(HCkCrypt2 handle, BOOL newVal);
long CkCrypt2_getKeyLength(HCkCrypt2 handle);
void CkCrypt2_putKeyLength(HCkCrypt2 handle, long newVal);
BOOL CkCrypt2_getLastChunk(HCkCrypt2 handle);
void CkCrypt2_putLastChunk(HCkCrypt2 handle, BOOL newVal);
void CkCrypt2_getLastErrorHtml(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_getLastErrorText(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_getLastErrorXml(HCkCrypt2 handle, HCkString retval);
long CkCrypt2_getPaddingScheme(HCkCrypt2 handle);
void CkCrypt2_putPaddingScheme(HCkCrypt2 handle, long newVal);
long CkCrypt2_getRc2EffectiveKeyLength(HCkCrypt2 handle);
void CkCrypt2_putRc2EffectiveKeyLength(HCkCrypt2 handle, long newVal);
void CkCrypt2_getSecretKey(HCkCrypt2 handle, HCkByteData retval);
void CkCrypt2_putSecretKey(HCkCrypt2 handle, HCkByteData  newVal);
BOOL CkCrypt2_getUtf8(HCkCrypt2 handle);
void CkCrypt2_putUtf8(HCkCrypt2 handle, BOOL newVal);
void CkCrypt2_getVersion(HCkCrypt2 handle, HCkString retval);
void CkCrypt2_ByteSwap4321(HCkCrypt2 handle, HCkByteData inOut);
BOOL CkCrypt2_BytesToString(HCkCrypt2 handle, HCkByteData inData, const char *charset, HCkString outStr);
BOOL CkCrypt2_CkDecryptFile(HCkCrypt2 handle, const char *inFile, const char *outFile);
BOOL CkCrypt2_CkEncryptFile(HCkCrypt2 handle, const char *inFile, const char *outFile);
BOOL CkCrypt2_CompressBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_CompressBytesENC(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_CompressString(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_CompressStringENC(HCkCrypt2 handle, const char *str, HCkString out);
BOOL CkCrypt2_CreateDetachedSignature(HCkCrypt2 handle, const char *inFile, const char *sigFile);
BOOL CkCrypt2_CreateP7M(HCkCrypt2 handle, const char *inFilename, const char *p7mFilename);
BOOL CkCrypt2_CreateP7S(HCkCrypt2 handle, const char *inFilename, const char *p7sFilename);
void CkCrypt2_Decode(HCkCrypt2 handle, const char *str, const char *encoding, HCkByteData bData);
BOOL CkCrypt2_DecryptBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_DecryptBytesENC(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_DecryptEncoded(HCkCrypt2 handle, const char *str, HCkString outStr);
BOOL CkCrypt2_DecryptString(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_DecryptStringENC(HCkCrypt2 handle, const char *str, HCkString out);
void CkCrypt2_Encode(HCkCrypt2 handle, HCkByteData bData, const char *encoding, HCkString str);
BOOL CkCrypt2_EncryptBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_EncryptBytesENC(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_EncryptEncoded(HCkCrypt2 handle, const char *str, HCkString outStr);
BOOL CkCrypt2_EncryptString(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_EncryptStringENC(HCkCrypt2 handle, const char *str, HCkString out);
void CkCrypt2_GenEncodedSecretKey(HCkCrypt2 handle, const char *password, const char *encoding, HCkString outStr);
void CkCrypt2_GenerateSecretKey(HCkCrypt2 handle, const char *password, HCkByteData out);
void CkCrypt2_GetEncodedIV(HCkCrypt2 handle, const char *encoding, HCkString strIV);
void CkCrypt2_GetEncodedKey(HCkCrypt2 handle, const char *encoding, HCkString strKey);
HCkCert CkCrypt2_GetLastCert(HCkCrypt2 handle);
BOOL CkCrypt2_HashBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_HashBytesENC(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_HashFile(HCkCrypt2 handle, const char *filename, HCkByteData out);
BOOL CkCrypt2_HashFileENC(HCkCrypt2 handle, const char *filename, HCkString out);
BOOL CkCrypt2_HashString(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_HashStringENC(HCkCrypt2 handle, const char *str, HCkString out);
void CkCrypt2_HmacBytes(HCkCrypt2 handle, HCkByteData inBytes, HCkByteData hmacOut);
void CkCrypt2_HmacBytesENC(HCkCrypt2 handle, HCkByteData inBytes, HCkString encodedHmacOut);
void CkCrypt2_HmacString(HCkCrypt2 handle, const char *inText, HCkByteData hmacOut);
void CkCrypt2_HmacStringENC(HCkCrypt2 handle, const char *inText, HCkString encodedHmacOut);
BOOL CkCrypt2_InflateBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_InflateBytesENC(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_InflateString(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_InflateStringENC(HCkCrypt2 handle, const char *str, HCkString out);
BOOL CkCrypt2_IsUnlocked(HCkCrypt2 handle);
BOOL CkCrypt2_OpaqueSignBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_OpaqueSignBytesENC(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_OpaqueSignString(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_OpaqueSignStringENC(HCkCrypt2 handle, const char *str, HCkString out);
BOOL CkCrypt2_OpaqueVerifyBytes(HCkCrypt2 handle, HCkByteData p7s, HCkByteData original);
BOOL CkCrypt2_OpaqueVerifyBytesENC(HCkCrypt2 handle, const char *p7s, HCkByteData original);
BOOL CkCrypt2_OpaqueVerifyString(HCkCrypt2 handle, HCkByteData p7s, HCkString original);
BOOL CkCrypt2_OpaqueVerifyStringENC(HCkCrypt2 handle, const char *p7s, HCkString original);
void CkCrypt2_RandomizeIV(HCkCrypt2 handle);
BOOL CkCrypt2_ReEncode(HCkCrypt2 handle, const char *data, const char *fromEncoding, const char *toEncoding, HCkString outStr);
BOOL CkCrypt2_ReadFile(HCkCrypt2 handle, const char *filename, HCkByteData outBytes);
BOOL CkCrypt2_SaveLastError(HCkCrypt2 handle, const char *filename);
BOOL CkCrypt2_SetCSP(HCkCrypt2 handle, HCkCSP csp);
BOOL CkCrypt2_SetDecryptCert(HCkCrypt2 handle, HCkCert cert);
BOOL CkCrypt2_SetDecryptCert2(HCkCrypt2 handle, HCkCert cert, HCkPrivateKey key);
void CkCrypt2_SetEncodedIV(HCkCrypt2 handle, const char *ivStr, const char *encoding);
void CkCrypt2_SetEncodedKey(HCkCrypt2 handle, const char *keyStr, const char *encoding);
void CkCrypt2_SetEncryptCert(HCkCrypt2 handle, HCkCert cert);
void CkCrypt2_SetHmacKeyBytes(HCkCrypt2 handle, HCkByteData keyBytes);
void CkCrypt2_SetHmacKeyEncoded(HCkCrypt2 handle, const char *key, const char *encoding);
void CkCrypt2_SetHmacKeyString(HCkCrypt2 handle, const char *key);
void CkCrypt2_SetIV(HCkCrypt2 handle, const unsigned char *ivData, int numBytes);
void CkCrypt2_SetSecretKey(HCkCrypt2 handle, const unsigned char *keyData, int numBytes);
void CkCrypt2_SetSecretKeyViaPassword(HCkCrypt2 handle, const char *password);
void CkCrypt2_SetSigningCert(HCkCrypt2 handle, HCkCert cert);
BOOL CkCrypt2_SetSigningCert2(HCkCrypt2 handle, HCkCert cert, HCkPrivateKey key);
void CkCrypt2_SetVerifyCert(HCkCrypt2 handle, HCkCert cert);
BOOL CkCrypt2_SignBytes(HCkCrypt2 handle, HCkByteData bData, HCkByteData out);
BOOL CkCrypt2_SignBytesENC(HCkCrypt2 handle, HCkByteData bData, HCkString out);
BOOL CkCrypt2_SignString(HCkCrypt2 handle, const char *str, HCkByteData out);
BOOL CkCrypt2_SignStringENC(HCkCrypt2 handle, const char *str, HCkString out);
BOOL CkCrypt2_StringToBytes(HCkCrypt2 handle, const char *inStr, const char *charset, HCkByteData outBytes);
void CkCrypt2_TrimEndingWith(HCkCrypt2 handle, const char *inStr, const char *ending, HCkString outStr);
BOOL CkCrypt2_UnlockComponent(HCkCrypt2 handle, const char *unlockCode);
BOOL CkCrypt2_VerifyBytes(HCkCrypt2 handle, HCkByteData bData1, HCkByteData sigData);
BOOL CkCrypt2_VerifyBytesENC(HCkCrypt2 handle, HCkByteData bData, const char *encodedSig);
BOOL CkCrypt2_VerifyDetachedSignature(HCkCrypt2 handle, const char *inFile, const char *sigFile);
BOOL CkCrypt2_VerifyP7M(HCkCrypt2 handle, const char *p7mFilename, const char *outFilename);
BOOL CkCrypt2_VerifyP7S(HCkCrypt2 handle, const char *inFilename, const char *p7sFilename);
BOOL CkCrypt2_VerifyString(HCkCrypt2 handle, const char *str, HCkByteData sigData);
BOOL CkCrypt2_VerifyStringENC(HCkCrypt2 handle, const char *str, const char *encodedSig);
BOOL CkCrypt2_WriteFile(HCkCrypt2 handle, const char *filename, HCkByteData fileData);
const char *CkCrypt2_bytesToString(HCkCrypt2 handle, HCkByteData inData, const char *charset);
const char *CkCrypt2_charset(HCkCrypt2 handle);
const char *CkCrypt2_cipherMode(HCkCrypt2 handle);
const char *CkCrypt2_compressBytesENC(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_compressStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_compressionAlgorithm(HCkCrypt2 handle);
const char *CkCrypt2_cryptAlgorithm(HCkCrypt2 handle);
const char *CkCrypt2_decryptEncoded(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_decryptString(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_decryptStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_encode(HCkCrypt2 handle, HCkByteData bData, const char *encoding);
const char *CkCrypt2_encodeBytes(HCkCrypt2 handle, const unsigned char *byteData, int numBytes, const char *encoding);
const char *CkCrypt2_encodeBytes2(HCkCrypt2 handle, const char *byteData, int numBytes, const char *encoding);
const char *CkCrypt2_encodingMode(HCkCrypt2 handle);
const char *CkCrypt2_encryptBytesENC(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_encryptEncoded(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_encryptStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_genEncodedSecretKey(HCkCrypt2 handle, const char *password, const char *encoding);
const char *CkCrypt2_getEncodedIV(HCkCrypt2 handle, const char *encoding);
const char *CkCrypt2_getEncodedKey(HCkCrypt2 handle, const char *encoding);
const char *CkCrypt2_hashAlgorithm(HCkCrypt2 handle);
const char *CkCrypt2_hashBytesENC(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_hashFileENC(HCkCrypt2 handle, const char *filename);
const char *CkCrypt2_hashStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_hmacBytesENC(HCkCrypt2 handle, HCkByteData inBytes);
const char *CkCrypt2_hmacStringENC(HCkCrypt2 handle, const char *inText);
const char *CkCrypt2_inflateString(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_inflateStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_lastErrorHtml(HCkCrypt2 handle);
const char *CkCrypt2_lastErrorText(HCkCrypt2 handle);
const char *CkCrypt2_lastErrorXml(HCkCrypt2 handle);
const char *CkCrypt2_opaqueSignBytesENC(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_opaqueSignStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_opaqueVerifyString(HCkCrypt2 handle, HCkByteData p7s);
const char *CkCrypt2_opaqueVerifyStringENC(HCkCrypt2 handle, const char *p7s);
const char *CkCrypt2_reEncode(HCkCrypt2 handle, const char *data, const char *fromEncoding, const char *toEncoding);
const char *CkCrypt2_signBytesENC(HCkCrypt2 handle, HCkByteData bData);
const char *CkCrypt2_signStringENC(HCkCrypt2 handle, const char *str);
const char *CkCrypt2_trimEndingWith(HCkCrypt2 handle, const char *inStr, const char *ending);
const char *CkCrypt2_version(HCkCrypt2 handle);
#endif
